import time
import unittest
from BeautifulReport import BeautifulReport as bf

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions


class ChromeTestCase(unittest.TestCase):
    """
    这是一个 Chrome 的 测试集
    """
    driver = None

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()
        cls.driver.implicitly_wait(time_to_wait=10)

    def test_alert(self):
        """测试网页的等待时间"""
        self.driver.get("file:///C:/Users/edz/Desktop/testhtml/workspaceHtml/iframeDemo.html")

        # 在 点击 想要操作的元素 之前 要判断 元素是否在内联框架中
        # 如果一个 想要操作的元素 在内联框架中 需要使用 switch_to切换光标
        # 在使用 frame 切换光标时, 如果通过的是 内联窗口的名字(name)来进行的切换,速度相对来说慢一点  而 使用 id属性的值来切换,会快一点

        # self.driver.switch_to.frame(0)  # 可以通过 内联窗口在网页中的 下标索引来切换  下标 从 0  开始

        # 通过元素定位的方式 来 找到想要切换到的 内联窗口 的 表达式
        iframe = self.driver.find_element(By.CSS_SELECTOR, "iframe#ww1")
        self.driver.switch_to.frame(iframe)

        # 通过元素定位的方式 来点击 test1
        self.driver.find_element(By.LINK_TEXT, "test1").click()

        self.driver.switch_to.parent_frame()  # 返回父窗口中
        self.driver.switch_to.frame(1)  # 进行切换到 内联框架中
        self.driver.find_element(By.LINK_TEXT, "t1127").click()

    @classmethod
    def tearDownClass(cls):
        # cls.driver.close()
        # cls.driver.quit()
        pass


if __name__ == '__main__':
    pass
